package cn.iocoder.yudao.module.enterprise.service.reportdownload;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.enterprise.controller.admin.reportdownload.vo.*;
import cn.iocoder.yudao.module.enterprise.dal.dataobject.reportdownload.ReportDownloadDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

/**
 * 报告下载 Service 接口
 *
 * @author StevenShen
 */
public interface ReportDownloadService {

    /**
     * 创建报告下载
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createReportDownload(@Valid ReportDownloadCreateReqVO createReqVO);

    /**
     * 更新报告下载
     *
     * @param updateReqVO 更新信息
     */
    void updateReportDownload(@Valid ReportDownloadUpdateReqVO updateReqVO);

    /**
     * 删除报告下载
     *
     * @param id 编号
     */
    void deleteReportDownload(Long id);

    /**
     * 获得报告下载
     *
     * @param id 编号
     * @return 报告下载
     */
    ReportDownloadDO getReportDownload(Long id);

    /**
     * 获得报告下载列表
     *
     * @param ids 编号
     * @return 报告下载列表
     */
    List<ReportDownloadDO> getReportDownloadList(Collection<Long> ids);

    /**
     * 获得报告下载分页
     *
     * @param pageReqVO 分页查询
     * @return 报告下载分页
     */
    PageResult<ReportDownloadDO> getReportDownloadPage(ReportDownloadPageReqVO pageReqVO);

}
